#pragma once

namespace Typhoon {
	class Colour {
	public:
		typedef unsigned char Component;

		Component r;
		Component g;
		Component b;
		Component a;

		
		Colour();
		~Colour();
		
		Colour(Component r, Component g, Component b);
		Colour(Component r, Component g, Component b, Component a);
		Colour(float r, float g, float b, float a);
		
		bool operator==(const Colour &other);
		bool operator!=(const Colour &other);

		static const Colour HslToRgb(double Hue, double Saturation, double Lightness, double alpha);
		static Colour Lerp(const Colour& source, const Colour& dest, const float& amount);

		static Colour White();
		static Colour White(float alpha);
		static Colour Black();
		static Colour Black(float alpha);
		static Colour Red();
		static Colour Red(float alpha);
		static Colour Green();
		static Colour Green(float alpha);
		static Colour Blue();
		static Colour Blue(float alpha);
		static Colour Yellow();
		static Colour Yellow(float alpha);
	};
}

